<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Drawer - Documentation</title>

    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="module.exports.html">exports</a></li><li><a href="SmilesDrawer.ArrayHelper.html">ArrayHelper</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.clone">clone</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.contains">contains</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.containsAll">containsAll</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.count">count</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.deepCopy">deepCopy</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.each">each</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.get">get</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.intersection">intersection</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.merge">merge</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.print">print</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.remove">remove</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.removeAll">removeAll</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.removeUnique">removeUnique</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.sortByAtomicNumberDesc">sortByAtomicNumberDesc</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.toggle">toggle</a></li><li data-type='method'><a href="SmilesDrawer.ArrayHelper.html#.unique">unique</a></li></ul></li><li><a href="SmilesDrawer.Atom.html">Atom</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Atom.html#.getDuplicateAtomicNumbers">getDuplicateAtomicNumbers</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#.hasDuplicateAtomicNumbers">hasDuplicateAtomicNumbers</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#.sortByAtomicNumber">sortByAtomicNumber</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#addAnchoredRing">addAnchoredRing</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#addNeighbouringElement">addNeighbouringElement</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#attachPseudoElement">attachPseudoElement</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#backupRings">backupRings</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#getAtomicNumber">getAtomicNumber</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#getAttachedPseudoElements">getAttachedPseudoElements</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#getAttachedPseudoElementsCount">getAttachedPseudoElementsCount</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#getOrder">getOrder</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#getRingbondCount">getRingbondCount</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#haveCommonRingbond">haveCommonRingbond</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#neighbouringElementsEqual">neighbouringElementsEqual</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#restoreRings">restoreRings</a></li><li data-type='method'><a href="SmilesDrawer.Atom.html#setOrder">setOrder</a></li></ul></li><li><a href="SmilesDrawer.CanvasWrapper.html">CanvasWrapper</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#clear">clear</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawAromaticityRing">drawAromaticityRing</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawBall">drawBall</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawCircle">drawCircle</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawDashedWedge">drawDashedWedge</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawDebugPoint">drawDebugPoint</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawDebugText">drawDebugText</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawLine">drawLine</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawPoint">drawPoint</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawText">drawText</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#drawWedge">drawWedge</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#getColor">getColor</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#reset">reset</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#scale">scale</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#setTheme">setTheme</a></li><li data-type='method'><a href="SmilesDrawer.CanvasWrapper.html#updateSize">updateSize</a></li></ul></li><li><a href="SmilesDrawer.Drawer.html">Drawer</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Drawer.html#addRing">addRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#addRingConnection">addRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#areVerticesInSameRing">areVerticesInSameRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#backupRingInformation">backupRingInformation</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#chooseSide">chooseSide</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#createBridgedRing">createBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#createNextBond">createNextBond</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#createRing">createRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#draw">draw</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#drawEdge">drawEdge</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#drawEdges">drawEdges</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#drawVertices">drawVertices</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#edgeRingCount">edgeRingCount</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#extend">extend</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getBondCount">getBondCount</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getBridgedRingRings">getBridgedRingRings</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getBridgedRings">getBridgedRings</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getClosestVertex">getClosestVertex</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getCommonRingbondNeighbour">getCommonRingbondNeighbour</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getCommonRings">getCommonRings</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getCurrentCenterOfMass">getCurrentCenterOfMass</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getCurrentCenterOfMassInNeigbourhood">getCurrentCenterOfMassInNeigbourhood</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getEdgeNormals">getEdgeNormals</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getFusedRings">getFusedRings</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getHeavyAtomCount">getHeavyAtomCount</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getLargestOrAromaticCommonRing">getLargestOrAromaticCommonRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getNonRingNeighbours">getNonRingNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getOverlapScore">getOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getRing">getRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getRingbondType">getRingbondType</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getRingConnection">getRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getRingConnections">getRingConnections</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getRingCount">getRingCount</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getSpiros">getSpiros</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getSubringCenter">getSubringCenter</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getSubtreeOverlapScore">getSubtreeOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getTotalOverlapScore">getTotalOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getTreeDepth">getTreeDepth</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#getVerticesAt">getVerticesAt</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#hasBridgedRing">hasBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#initPseudoElements">initPseudoElements</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#initRings">initRings</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#isEdgeInRing">isEdgeInRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#isEdgeRotatable">isEdgeRotatable</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#isPartOfBridgedRing">isPartOfBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#isPointInRing">isPointInRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#isRingAromatic">isRingAromatic</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#position">position</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#printRingInfo">printRingInfo</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#removeRing">removeRing</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#removeRingConnection">removeRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#removeRingConnectionsBetween">removeRingConnectionsBetween</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#resolvePrimaryOverlaps">resolvePrimaryOverlaps</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#resolveSecondaryOverlaps">resolveSecondaryOverlaps</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#restoreRingInformation">restoreRingInformation</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#rotateSubtree">rotateSubtree</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#setRingCenter">setRingCenter</a></li><li data-type='method'><a href="SmilesDrawer.Drawer.html#traverseTree">traverseTree</a></li></ul></li><li><a href="SmilesDrawer.Edge.html">Edge</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Edge.html#getBondCount">getBondCount</a></li></ul></li><li><a href="SmilesDrawer.Graph.html">Graph</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Graph.html#._ccCountDfs">_ccCountDfs</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#._ccGetDfs">_ccGetDfs</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#.getConnectedComponentCount">getConnectedComponentCount</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#.getConnectedComponents">getConnectedComponents</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#_bridgeDfs">_bridgeDfs</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#_init">_init</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#_initInfos">_initInfos</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#addEdge">addEdge</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#addVertex">addVertex</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#clear">clear</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getAdjacencyList">getAdjacencyList</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getAdjacencyMatrix">getAdjacencyMatrix</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getBridges">getBridges</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getComponentsAdjacencyMatrix">getComponentsAdjacencyMatrix</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getDistanceMatrix">getDistanceMatrix</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getEdge">getEdge</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getEdgeList">getEdgeList</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getEdges">getEdges</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getSubgraphAdjacencyList">getSubgraphAdjacencyList</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getSubgraphAdjacencyMatrix">getSubgraphAdjacencyMatrix</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getSubgraphDistanceMatrix">getSubgraphDistanceMatrix</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#getVertexList">getVertexList</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#hasEdge">hasEdge</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#kkLayout">kkLayout</a></li><li data-type='method'><a href="SmilesDrawer.Graph.html#traverseBF">traverseBF</a></li></ul></li><li><a href="SmilesDrawer.Line.html">Line</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Line.html#clone">clone</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getAngle">getAngle</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getLeftChiral">getLeftChiral</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getLeftElement">getLeftElement</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getLeftVector">getLeftVector</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getLength">getLength</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getNormals">getNormals</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getRightChiral">getRightChiral</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getRightElement">getRightElement</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#getRightVector">getRightVector</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#rotate">rotate</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#rotateToXAxis">rotateToXAxis</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#setLeftVector">setLeftVector</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#setRightVector">setRightVector</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#shorten">shorten</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#shortenFrom">shortenFrom</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#shortenLeft">shortenLeft</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#shortenRight">shortenRight</a></li><li data-type='method'><a href="SmilesDrawer.Line.html#shortenTo">shortenTo</a></li></ul></li><li><a href="SmilesDrawer.Ring.html">Ring</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Ring.html#clone">clone</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#contains">contains</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#eachMember">eachMember</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#getAngle">getAngle</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#getDoubleBondCount">getDoubleBondCount</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#getOrderedNeighbours">getOrderedNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#getPolygon">getPolygon</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#getSize">getSize</a></li><li data-type='method'><a href="SmilesDrawer.Ring.html#isBenzeneLike">isBenzeneLike</a></li></ul></li><li><a href="SmilesDrawer.RingConnection.html">RingConnection</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.RingConnection.html#.getNeighbours">getNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#.getVertices">getVertices</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#.isBridge">isBridge</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#addVertex">addVertex</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#containsRing">containsRing</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#isBridge">isBridge</a></li><li data-type='method'><a href="SmilesDrawer.RingConnection.html#updateOther">updateOther</a></li></ul></li><li><a href="SmilesDrawer.SSSR.html">SSSR</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.SSSR.html#.areSetsEqual">areSetsEqual</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.bondsToAtoms">bondsToAtoms</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getBondCount">getBondCount</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getEdgeCount">getEdgeCount</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getEdgeList">getEdgeList</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getPathIncludedDistanceMatrices">getPathIncludedDistanceMatrices</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getRingCandidates">getRingCandidates</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getRings">getRings</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.getSSSR">getSSSR</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.isSupersetOf">isSupersetOf</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.matrixToString">matrixToString</a></li><li data-type='method'><a href="SmilesDrawer.SSSR.html#.pathSetsContain">pathSetsContain</a></li></ul></li><li><a href="SmilesDrawer.Vector2.html">Vector2</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Vector2.html#add">add</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#angle">angle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#clockwise">clockwise</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#clone">clone</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#distance">distance</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#distanceSq">distanceSq</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#divide">divide</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#getRotateAwayFromAngle">getRotateAwayFromAngle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#getRotateToAngle">getRotateToAngle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#getRotateTowardsAngle">getRotateTowardsAngle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#invert">invert</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#isInPolygon">isInPolygon</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#length">length</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#lengthSq">lengthSq</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#multiply">multiply</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#normalize">normalize</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#normalized">normalized</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#rotate">rotate</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#rotateAround">rotateAround</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#rotateAwayFrom">rotateAwayFrom</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#rotateTo">rotateTo</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#sameSideAs">sameSideAs</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#subtract">subtract</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#toString">toString</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#whichSide">whichSide</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.add">add</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.angle">angle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.averageDirection">averageDirection</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.divide">divide</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.dot">dot</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.midpoint">midpoint</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.multiply">multiply</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.normals">normals</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.scalarProjection">scalarProjection</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.subtract">subtract</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.threePointangle">threePointangle</a></li><li data-type='method'><a href="SmilesDrawer.Vector2.html#.units">units</a></li></ul></li><li><a href="SmilesDrawer.Vertex.html">Vertex</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.Vertex.html#addChild">addChild</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#clone">clone</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#equals">equals</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getAngle">getAngle</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getDrawnNeighbours">getDrawnNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getNeighbourCount">getNeighbourCount</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getNeighbours">getNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getNextInRing">getNextInRing</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getSpanningTreeNeighbours">getSpanningTreeNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#getTextDirection">getTextDirection</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#isTerminal">isTerminal</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#setParentVertexId">setParentVertexId</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#setPosition">setPosition</a></li><li data-type='method'><a href="SmilesDrawer.Vertex.html#setPositionFromVector">setPositionFromVector</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#apothem">apothem</a></li><li><a href="global.html#centralAngle">centralAngle</a></li><li><a href="global.html#innerAngle">innerAngle</a></li><li><a href="global.html#meanAngle">meanAngle</a></li><li><a href="global.html#parityOfPermutation">parityOfPermutation</a></li><li><a href="global.html#polyCircumradius">polyCircumradius</a></li><li><a href="global.html#round">round</a></li><li><a href="global.html#SmilesDrawer">SmilesDrawer</a></li><li><a href="global.html#toDeg">toDeg</a></li><li><a href="global.html#toRad">toRad</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">Drawer</h1>
    

    




<section>

<header>
    
        <h2>
            <span class="ancestors"><a href="global.html#SmilesDrawer">SmilesDrawer</a>.</span>
        
        Drawer
        </h2>
        
            <div class="class-description"><p>The main class of the application representing the smiles drawer</p></div>
        
    
</header>

<article>
    <div class="container-overview">
    
        

    
    <h2>Constructor</h2>
    

    <h4 class="name" id="Drawer"><span class="type-signature"></span>new Drawer<span class="signature">(options)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line16">line 16</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>



    <h5 class="subsection-title">Properties:</h5>

    

<table class="props">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>graph</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Graph.html">SmilesDrawer.Graph</a></span>


            
            </td>

            

            

            <td class="description last"><p>The graph associated with this SmilesDrawer.Drawer instance.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringIdCounter</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An internal counter to keep track of ring ids.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringConnectionIdCounter</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An internal counter to keep track of ring connection ids.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>canvasWrapper</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.CanvasWrapper.html">SmilesDrawer.CanvasWrapper</a></span>


            
            </td>

            

            

            <td class="description last"><p>The SmilesDrawer.CanvasWrapper associated with this SmilesDrawer.Drawer instance.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>totalOverlapScore</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The current internal total overlap score.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>defaultOptions</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The default options.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>opts</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The merged options.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>theme</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The current theme.</p></td>
        </tr>

    
    </tbody>
</table>






<div class="description">
    <p>The constructor for the class SmilesDrawer.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>An object containing custom values for different options. It is merged with the default options.</p></td>
        </tr>

    
    </tbody>
</table>
















    
    </div>

    

    

    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id="addRing"><span class="type-signature"></span>addRing<span class="signature">(ring)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line850">line 850</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Add a ring to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ring.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring id of the new ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="addRingConnection"><span class="type-signature"></span>addRingConnection<span class="signature">(ringConnection)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line901">line 901</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Add a ring connection to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnection</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.RingConnection.html">SmilesDrawer.RingConnection</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ringConnection.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring connection id of the new ring connection.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="areVerticesInSameRing"><span class="type-signature"></span>areVerticesInSameRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line726">line 726</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not two vertices are in the same ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the two vertices are in the same ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="backupRingInformation"><span class="type-signature"></span>backupRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1426">line 1426</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Stores the current information associated with rings.</p>
</div>

























        
            

    

    <h4 class="name" id="chooseSide"><span class="type-signature"></span>chooseSide<span class="signature">(vertexA, vertexB, sides)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1050">line 1050</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>When drawing a double bond, choose the side to place the double bond. E.g. a double bond should always been drawn inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sides</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>></span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the two normals of the line spanned by the two provided vertices.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns an object containing the following information: {
          totalSideCount: Counts the sides of each vertex in the molecule, is an array [ a, b ],
          totalPosition: Same as position, but based on entire molecule,
          sideCount: Counts the sides of each neighbour, is an array [ a, b ],
          position: which side to position the second bond, is 0 or 1, represents the index in the normal array. This is based on only the neighbours
          anCount: the number of neighbours of vertexA,
          bnCount: the number of neighbours of vertexB
      }</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="createBridgedRing"><span class="type-signature"></span>createBridgedRing<span class="signature">(ringIds, sourceVertexId)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line605">line 605</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array of ids of rings involved in the bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sourceVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The vertex id to start the bridged ring discovery from.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="createNextBond"><span class="type-signature"></span>createNextBond<span class="signature">(vertex, previousVertex, ringOrAngle, dir, skipPositioning<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1875">line 1875</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Positiones the next vertex thus creating a bond.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The previous vertex which has been positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringOrAngle</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>
|

<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Either a ring or a number. If the vertex is connected to a ring, it is positioned based on the ring center and thus the ring is supplied. If the vertex is not in a ring, an angle (in radians) is supplied.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>dir</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Either 1 or -1 to break ties (if no angle can be elucidated).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>skipPositioning</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether or not to skip positioning and just check the neighbours.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="createRing"><span class="type-signature"></span>createRing<span class="signature">(ring, center<span class="signature-attributes">opt</span>, startVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1486">line 1486</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates a new ring, that is, positiones all the vertices inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The ring to position.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The center of the ring to be created.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>startVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The first vertex to be positioned inside the ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The last vertex that was positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>A boolean indicating whether or not this ring was force positioned already - this is needed after force layouting a ring, in order to draw rings connected to it.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(data, target, themeName, infoOnly)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line133">line 133</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draws the parsed smiles data to a canvas element.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The tree returned by the smiles parser.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>target</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>
|

<span class="param-type">HTMLElement</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The id of the HTML canvas element the structure is drawn to - or the element itself.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>themeName</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>'dark'</code>
                
                </td>
            

            <td class="description last"><p>The name of the theme to use. Built-in themes are 'light' and 'dark'.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>infoOnly</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Only output info on the molecule without drawing anything to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="drawEdge"><span class="type-signature"></span>drawEdge<span class="signature">(edgeId, debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1181">line 1181</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draw the an edge as a bonds to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edgeId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An edge id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug helpers.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="drawEdges"><span class="type-signature"></span>drawEdges<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1147">line 1147</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draw the actual edges as bonds to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug helpers.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="drawVertices"><span class="type-signature"></span>drawVertices<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1335">line 1335</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draws the vertices representing atoms to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug messages to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="edgeRingCount"><span class="type-signature"></span>edgeRingCount<span class="signature">(edgeId)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line269">line 269</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the number of rings this edge is a part of.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edgeId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of an edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The number of rings the provided edge is part of.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="extend"><span class="type-signature"></span>extend<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line92">line 92</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>A helper method to extend the default options with user supplied ones.</p>
</div>

























        
            

    

    <h4 class="name" id="getBondCount"><span class="type-signature"></span>getBondCount<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2470">line 2470</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the number of bonds of a vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The number of bonds the vertex participates in.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getBridgedRingRings"><span class="type-signature"></span>getBridgedRingRings<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line556">line 556</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns all rings connected by bridged bonds starting from the ring with the supplied ring id.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all ring ids of rings part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getBridgedRings"><span class="type-signature"></span>getBridgedRings<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line282">line 282</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing the bridged rings associated with this  molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all bridged rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getClosestVertex"><span class="type-signature"></span>getClosestVertex<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line822">line 822</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the closest vertex (connected as well as unconnected).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>The vertex of which to find the closest other vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The closest vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCommonRingbondNeighbour"><span class="type-signature"></span>getCommonRingbondNeighbour<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {Number|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2287">line 2287</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the vetex sharing the edge that is the common bond of two rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The id of a vertex sharing the edge that is the common bond of two rings with the vertex provided or null, if none.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCommonRings"><span class="type-signature"></span>getCommonRings<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line747">line 747</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of ring ids shared by both vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ids of rings shared by the two vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCurrentCenterOfMass"><span class="type-signature"></span>getCurrentCenterOfMass<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1714">line 1714</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the current (positioned vertices so far) center of mass.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCurrentCenterOfMassInNeigbourhood"><span class="type-signature"></span>getCurrentCenterOfMassInNeigbourhood<span class="signature">(vec, r<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1737">line 1737</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the current (positioned vertices so far) center of mass in the neighbourhood of a given position.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The point at which to look for neighbours.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>r</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>currentBondLength*2.0</code>
                
                </td>
            

            <td class="description last"><p>The radius of vertices to include.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getEdgeNormals"><span class="type-signature"></span>getEdgeNormals<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2393">line 2393</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the normals of an edge.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Edge.html">SmilesDrawer.Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing two vectors, representing the normals.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getFusedRings"><span class="type-signature"></span>getFusedRings<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line299">line 299</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing all fused rings associated with this molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all fused rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getHeavyAtomCount"><span class="type-signature"></span>getHeavyAtomCount<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line383">line 383</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the number of heavy atoms (non-hydrogen) in the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The heavy atom count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getLargestOrAromaticCommonRing"><span class="type-signature"></span>getLargestOrAromaticCommonRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line768">line 768</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the aromatic or largest ring shared by the two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>If an aromatic common ring exists, that ring, else the largest (non-aromatic) ring, else null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getNonRingNeighbours"><span class="type-signature"></span>getNonRingNeighbours<span class="signature">(vertexId)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2486">line 2486</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of vertices that are neighbouring a vertix but are not members of a ring (including bridges).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a>></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getOverlapScore"><span class="type-signature"></span>getOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line986">line 986</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the overlap score of the current molecule based on its positioned vertices. The higher the score, the more overlaps occur in the structure drawing.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the total overlap score and the overlap score of each vertex sorted by score (higher to lower). Example: { total: 99, scores: [ { id: 0, score: 22 }, ... ]  }</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRing"><span class="type-signature"></span>getRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line887">line 887</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets a ring object from the array of rings associated with the current molecule by its id. The ring id is not equal to the index, since rings can be added and removed when processing bridged rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A ring associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingbondType"><span class="type-signature"></span>getRingbondType<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {String|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line402">line 402</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the type of the ringbond (e.g. '=' for a double bond). The ringbond represents the break in a ring introduced when creating the MST. If the two vertices supplied as arguments are not part of a common ringbond, the method returns null.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the ringbond type or null, if the two supplied vertices are not connected by a ringbond.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingConnection"><span class="type-signature"></span>getRingConnection<span class="signature">(id)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.RingConnection.html">SmilesDrawer.RingConnection</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line947">line 947</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get a ring connection with a given id.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>id</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring connection with the specified id.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.RingConnection.html">SmilesDrawer.RingConnection</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingConnections"><span class="type-signature"></span>getRingConnections<span class="signature">(ringId, ringIds)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line962">line 962</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the ring connections between a ring and a set of rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array of ring ids.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ring connection ids.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingCount"><span class="type-signature"></span>getRingCount<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line365">line 365</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the ring count of the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSpiros"><span class="type-signature"></span>getSpiros<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line316">line 316</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing all spiros associated with this molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all spiros associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a>></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSubringCenter"><span class="type-signature"></span>getSubringCenter<span class="signature">(ring, vertex)</span><span class="type-signature"> &rarr; {<a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1121">line 1121</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the center of a ring contained within a bridged ring and containing a given vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vertex.html">SmilesDrawer.Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The center of the subring that containing the vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSubtreeOverlapScore"><span class="type-signature"></span>getSubtreeOverlapScore<span class="signature">(vertexId, parentVertexId, vertexOverlapScores)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1687">line 1687</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the overlap score of a subtree.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexOverlapScores</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the vertex overlap scores indexed by vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An object containing the total overlap score and the center of mass of the subtree weighted by overlap score { value: 0.2, center: new SmilesDrawer.Vector2() }.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getTotalOverlapScore"><span class="type-signature"></span>getTotalOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line356">line 356</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the total overlap score of the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The overlap score.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getTreeDepth"><span class="type-signature"></span>getTreeDepth<span class="signature">(vertexId, parentVertexId)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2410">line 2410</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the depth of a subtree in the direction opposite to the vertex specified as the parent vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of a neighbouring vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The depth of the sub-tree.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getVerticesAt"><span class="type-signature"></span>getVerticesAt<span class="signature">(position, radius, excludeVertexId)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line796">line 796</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of vertices positioned at a specified location.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>position</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The position to search for vertices.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>radius</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The radius within to search.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>excludeVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id to be excluded from the search results.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing vertex ids in a given location.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="hasBridgedRing"><span class="type-signature"></span>hasBridgedRing<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line374">line 374</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not the current molecule  a bridged ring.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the current molecule  a bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="initPseudoElements"><span class="type-signature"></span>initPseudoElements<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2571">line 2571</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates pseudo-elements (such as Et, Me, Ac, Bz, ...) at the position of the carbon sets
the involved atoms not to be displayed.</p>
</div>

























        
            

    

    <h4 class="name" id="initRings"><span class="type-signature"></span>initRings<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line430">line 430</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Initializes rings and ringbonds for the current molecule.</p>
</div>

























        
            

    

    <h4 class="name" id="isEdgeInRing"><span class="type-signature"></span>isEdgeInRing<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2332">line 2332</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not an edge is part of a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Edge.html">SmilesDrawer.Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is part of a ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isEdgeRotatable"><span class="type-signature"></span>isEdgeRotatable<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2345">line 2345</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not an edge is rotatable.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Edge.html">SmilesDrawer.Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is rotatable.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isPartOfBridgedRing"><span class="type-signature"></span>isPartOfBridgedRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line587">line 587</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not a ring is part of a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the supplied ring (by id) is part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isPointInRing"><span class="type-signature"></span>isPointInRing<span class="signature">(vec)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2307">line 2307</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check if a vector is inside any ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vector.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the point (vector) is inside any of the rings associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isRingAromatic"><span class="type-signature"></span>isRingAromatic<span class="signature">(ring)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2375">line 2375</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not a ring is an implicitly defined aromatic ring (lower case smiles).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A ring.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not a ring is implicitly defined as aromatic.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="position"><span class="type-signature"></span>position<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1393">line 1393</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Position the vertices according to their bonds and properties.</p>
</div>

























        
            

    

    <h4 class="name" id="printRingInfo"><span class="type-signature"></span>printRingInfo<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line333">line 333</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns a string containing a semicolon and new-line separated list of ring properties: Id; Members Count; Neighbours Count; IsSpiro; IsFused; IsBridged; Ring Count (subrings of bridged rings)</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A string as described in the method description.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="removeRing"><span class="type-signature"></span>removeRing<span class="signature">(ringId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line862">line 862</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes a ring from the array of rings associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="removeRingConnection"><span class="type-signature"></span>removeRingConnection<span class="signature">(ringConnectionId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line913">line 913</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes a ring connection from the array of rings connections associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnectionId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring connection id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="removeRingConnectionsBetween"><span class="type-signature"></span>removeRingConnectionsBetween<span class="signature">(vertexIdA, vertexIdB)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line925">line 925</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes all ring connections between two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdB</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="resolvePrimaryOverlaps"><span class="type-signature"></span>resolvePrimaryOverlaps<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1757">line 1757</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Resolve primary (exact) overlaps, such as two vertices that are connected to the same ring vertex.</p>
</div>

























        
            

    

    <h4 class="name" id="resolveSecondaryOverlaps"><span class="type-signature"></span>resolveSecondaryOverlaps<span class="signature">(scores)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1838">line 1838</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Resolve secondary overlaps. Those overlaps are due to the structure turning back on itself.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>scores</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Object></span>


            
            </td>

            

            

            <td class="description last"><p>An array of objects sorted descending by score.</p>
                <h6>Properties</h6>
                

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>id</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>score</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The overlap score associated with the vertex id.</p></td>
        </tr>

    
    </tbody>
</table>

            </td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="restoreRingInformation"><span class="type-signature"></span>restoreRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1446">line 1446</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Restores the most recently backed up information associated with rings.</p>
</div>

























        
            

    

    <h4 class="name" id="rotateSubtree"><span class="type-signature"></span>rotateSubtree<span class="signature">(vertexId, parentVertexId, angle, center)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1663">line 1663</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Rotate an entire subtree by an angle around a center.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree that is to rotate.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>angle</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An angle in randians.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Vector2.html">SmilesDrawer.Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The rotational center.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="setRingCenter"><span class="type-signature"></span>setRingCenter<span class="signature">(ring)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line1103">line 1103</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Sets the center for a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SmilesDrawer.Ring.html">SmilesDrawer.Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A ring.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="traverseTree"><span class="type-signature"></span>traverseTree<span class="signature">(vertexId, parentVertexId, callback, maxDepth<span class="signature-attributes">opt</span>, ignoreFirst<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="Drawer.js.html">Drawer.js</a>, <a href="Drawer.js.html#line2439">line 2439</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Traverse a sub-tree in the graph.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A neighbouring vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>callback</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The callback function that is called with each visited as an argument.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>maxDepth</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The maximum depth of the recursion. If null, there is no limit.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ignoreFirst</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether or not to ignore the starting vertex supplied as vertexId in the callback.</p></td>
        </tr>

    
    </tbody>
</table>
















        
    

    

    
</article>

</section>




</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Nov 01 2017 22:05:46 GMT+0100 (W. Europe Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>